package 二叉搜索数;

/**
 * https://leetcode.cn/problems/convert-bst-to-greater-tree/
 *
 * 本题中要求我们将每个节点的值修改为原来的节点值加上所有大于它的节点值之和。这样我们只需要反序中序遍历该二叉搜索树，记录过程中的节点值之和，
 * 并不断更新当前遍历到的节点的节点值，即可得到题目要求的累加树。
 */
public class _538_把二叉搜索树转换为累加树 {

    public TreeNode convertBST(TreeNode root) {
        if (root == null) return root;
        conver(root);
        return root;
    }

    int sum = 0;

    public void conver(TreeNode node) {
        if (node == null) return;
        //中序遍历
        conver(node.right);
        sum += node.val;
        node.val = sum;
        conver(node.left);
    }
}

